﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Web.Mvc;
//using www.SService;

namespace www.Controllers
{
    public class GrandRoleController : Controller
    {
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly ServiceClient _service1 = new ServiceClient();
        ////private readonly Utility _utility = new Utility();
        ////
        //// GET: /GrandRole/

        //[HttpGet]
        //public ActionResult Index()
        //{
        //    try
        //    {
        //        if (_cache["Staff"] == null)
        //        {
        //            var lData = _service1.GetRelaxStaffDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Staff", lData, policy);
        //                ViewData["Data"] = lData.ToList();
        //            }
        //        }
        //        else
        //        {
        //            var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //            ViewData["Data"] = lData.ToList();

        //        }

        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //private void LoadStaffMenu()
        //{
        //    if (_cache["StaffMenu"] == null)
        //    {

        //        var lData = _service1.GetMenuMemberDataContracts();
        //        if (lData.Any())
        //        {
        //            var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) };

        //            _cache.Set("StaffMenu", lData, policy);
        //        }
        //    }
        //}

        //private void LoadMenu()
        //{
        //    if (_cache["Menu"] == null)
        //    {

        //        var lData = _service1.GetMenuDataContracts();
        //        if (lData.Any())
        //        {
        //            var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) };

        //            _cache.Set("Menu", lData, policy);
        //        }
        //    }
        //}
        //[HttpGet]
        //public ActionResult GrandRole(int id = 0)
        //{
        //    LoadStaffMenu();
        //    LoadMenu();
        //    var lData = (List<RelaxStaffDataContract>)_cache["Staff"];
        //    if (lData == null)
        //        return RedirectToAction("Index", "GrandRole");

        //    var first = lData.FirstOrDefault(p => p.Id == id);
        //    var lMenu = (List<RelaxMenuDataContract>)_cache["Menu"];
        //    var lMenuStaff = (List<RelaxMenuMemberDataContract>)_cache["StaffMenu"];
        //    if (lMenuStaff != null)
        //    {
        //        var existsmenu = (from menu in lMenu
        //            //join staff in lMenuStaff.Where(p => p.MemberId == id) on menu.Id equals staff.MenuId
        //            select new RelaxMenuMemberDataContract
        //            {
        //                //Id = staff.Id,
        //                //MenuId = staff.MenuId,
        //                //MemberId = staff.MemberId,
        //                MenuName = menu.Name,
        //                //Active = staff.Active
        //            }).ToList();
        //        ViewData["Exists"] = existsmenu.ToList();

        //        //ViewData["NotExists"] = lMenu.Where(p => !existsmenu.Select(s => s.MenuId).Contains(p.Id)).ToList();
        //    }
        //    else
        //        ViewData["NotExists"] = lMenu.ToList();


        //    return View(first);
            
        //}

        //[HttpGet]
        //public ActionResult AddRole(int menuId,int staffId)
        //{
        //    var lData = new List<RelaxMenuMemberDataContract>
        //    {
        //         new RelaxMenuMemberDataContract
        //        {
        //            //MenuId = menuId,
        //            MemberId = staffId,
        //            Active = 1
        //        }
        //    };
        //    var lid = _service1.AddMenuMember(lData);
        //    if (lid.Any())
        //    {
        //        var lMenuStaff = (List<RelaxMenuMemberDataContract>)_cache["StaffMenu"];
        //        for (var i = 0; i < lid.Count; ++i)
        //        {
        //            lData[i].Id = lid[i];
        //        }
        //        if (lMenuStaff == null)
        //            lMenuStaff = new List<RelaxMenuMemberDataContract>();
        //        lMenuStaff.AddRange(lData);

        //        _cache["StaffMenu"] = lMenuStaff;

        //    }
           
        //    return RedirectToAction("GrandRole","GrandRole", new { id = staffId });
        //}

        //[HttpGet]
        //public ActionResult DeleteRole(int id, int staffId)
        //{
        //    var lId = new List<int> {id};
        //    //var ok = _service1.DeleteMenuMember(lId);
        //    //if (ok)
        //    //{
        //    //    var lMenuStaff = (List<RelaxMenuMemberDataContract>)_cache["StaffMenu"];
        //    //    var first = lMenuStaff.FirstOrDefault(p => p.Id == id);
        //    //    if (first != null)
        //    //        lMenuStaff.Remove(first);

        //    //    _cache["StaffMenu"] = lMenuStaff;
        //    //}
        //    return RedirectToAction("GrandRole", "GrandRole", new { id = staffId });
        //}

    }
}
